﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.TeamFoundation.Client;
using UCL.Powersource.Analysis;
using UCL.Powersource.TFS;

namespace UCL.Powersource
{
    public interface ITfsTeamProjectCollectionConfiguration : ILabel, IEnumerable<ITfsTeamProjectConfiguration>,INotifyPropertyChangedEx
    {
        String Uri { get; }
        String Name { get; }
        IEnumerable<ITimeFrame> ProjectCollectionTimeFrames { get; }

        string IldasmPath { get; set; }
        string LocalDropBasePath { get; set; }
        string CodeIndexDBServer { get; set; }
        string ExportPath { get; set; }
        string WebServiceUrl { get; set; }
        string DefaultProjectName { get; set; }
        string CalculateDefaultProjectName();

        void Synchronize();

        bool IsConnectedTo(ITfsTeamProjectCollection CurrentTfsTeamProjectCollection);

        ObservableCollection<ReportingContext> AllReportingContextCollection { get;  }
        ReportingContext CurrentReportingContext { get; set; }

         
    }
}
